Let’s consider 4 different cases, where we can calculate a cdf of long run length.
- Tossing a fair coin 10 000 times with probability of success \(\frac{1}{2}\)(Heads received). Calculating a cdf of the longest run length:
library(plotly)
library(ggplot2)
# function to calculate cdf.
longest_run_distribution <- function(p, n){
mean = 0
E <- function(x){-(p^x) * exp(-(p^x)) * log(p, exp(1))}
find_area <- function(l){
lower_bound = l - log(n*(1-p), 1/p)
upper_bound = lower_bound + 1
area = integrate(E, lower_bound, upper_bound)
return(area[["value"]])
}
probabilities <- vector()
labels <- vector()
for(l in 1:n){
area = find_area(l)
# calculating mean
mean = mean + area * l
if(area > 0.001){
probabilities <- c(probabilities, area)
labels <- c(labels, toString(l))
}
}
print("Mean:")
print(mean)
# plotting
df <- data.frame(text=labels,
num=probabilities)
plot_ly(data = df,
x = ~text,
y = ~num,
type = "bar",
color = I("darkgreen")
) %>%
layout(
title = "Distribution of the longest run lenghts",
xaxis = list(title = "Length of the longest run",
categoryorder = "array",
categoryarray = ~text),
yaxis = list(title = "Probability", range = c(0,max(probabilities)))
)
}
longest_run_distribution(1/2, 10000)
[1] "Mean:"
[1] 12.62046
- Rolling a fair die 10 000 times with probability of success \(\frac{1}{6}\)(side with number 3 rolled). Calculating a cdf of the longest run length:
longest_run_distribution(1/6, 10000)
[1] "Mean:"
[1] 4.854794
- Generating a random digit 10 000 times with probability of success \(\frac{1}{10}\)(number 1 obtained). Calculating a cdf of the longest run length:
longest_run_distribution(1/10, 10000)
[1] "Mean:"
[1] 3.689335
- Choosing a card from a deck of 32 cards 10 000 times(with returning the card back) with probability of success \(\frac{1}{32}\)(ace of spades is chosen). Calculating a cdf of the longest run length:
longest_run_distribution(1/32, 10000)
[1] "Mean:"
[1] 2.26536
As we can see, the smaller the value of p, the more concentrated the approximating extreme value density becomes, and thus the length of the longest success run becomes even more predictable.
LS0tDQp0aXRsZTogIkV4dHJlbWVseSBwcmVkaWN0YWJsZSBjYXNlcyINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQoNCkxldCdzIGNvbnNpZGVyIDQgZGlmZmVyZW50IGNhc2VzLCB3aGVyZSB3ZSBjYW4gY2FsY3VsYXRlIGEgY2RmIG9mIGxvbmcgcnVuIGxlbmd0aC4NCg0KMS4gVG9zc2luZyBhIGZhaXIgY29pbiAxMCAwMDAgdGltZXMgd2l0aCBwcm9iYWJpbGl0eSBvZiBzdWNjZXNzICRcZnJhY3sxfXsyfSQoSGVhZHMgcmVjZWl2ZWQpLiANCkNhbGN1bGF0aW5nIGEgY2RmIG9mIHRoZSBsb25nZXN0IHJ1biBsZW5ndGg6DQpgYGB7cn0NCmxpYnJhcnkocGxvdGx5KQ0KbGlicmFyeShnZ3Bsb3QyKQ0KIyBmdW5jdGlvbiB0byBjYWxjdWxhdGUgY2RmLg0KbG9uZ2VzdF9ydW5fZGlzdHJpYnV0aW9uIDwtIGZ1bmN0aW9uKHAsIG4pew0KICBtZWFuID0gMCANCiAgRSA8LSBmdW5jdGlvbih4KXstKHBeeCkgKiBleHAoLShwXngpKSAqIGxvZyhwLCBleHAoMSkpfQ0KICBmaW5kX2FyZWEgPC0gZnVuY3Rpb24obCl7DQogICAgbG93ZXJfYm91bmQgPSBsIC0gbG9nKG4qKDEtcCksIDEvcCkNCiAgICB1cHBlcl9ib3VuZCA9IGxvd2VyX2JvdW5kICsgMQ0KICAgIGFyZWEgPSBpbnRlZ3JhdGUoRSwgbG93ZXJfYm91bmQsIHVwcGVyX2JvdW5kKSANCiAgICByZXR1cm4oYXJlYVtbInZhbHVlIl1dKQ0KICB9DQogIHByb2JhYmlsaXRpZXMgPC0gdmVjdG9yKCkNCiAgbGFiZWxzIDwtIHZlY3RvcigpDQogIGZvcihsIGluIDE6bil7DQogICAgYXJlYSA9IGZpbmRfYXJlYShsKQ0KICAgIA0KICAgICMgY2FsY3VsYXRpbmcgbWVhbg0KICAgIG1lYW4gPSBtZWFuICsgYXJlYSAqIGwNCiAgICANCiAgICBpZihhcmVhID4gMC4wMDEpew0KICAgICAgcHJvYmFiaWxpdGllcyA8LSBjKHByb2JhYmlsaXRpZXMsIGFyZWEpDQogICAgICBsYWJlbHMgPC0gYyhsYWJlbHMsIHRvU3RyaW5nKGwpKQ0KICAgIH0NCiAgfQ0KICBwcmludCgiTWVhbjoiKQ0KICBwcmludChtZWFuKQ0KICANCiAgIyBwbG90dGluZw0KICBkZiA8LSBkYXRhLmZyYW1lKHRleHQ9bGFiZWxzLA0KICAgICAgICAgICAgICAgICAgbnVtPXByb2JhYmlsaXRpZXMpDQogIA0KICAgICAgcGxvdF9seShkYXRhID0gZGYsDQogICAgICAgeCA9IH50ZXh0LA0KICAgICAgIHkgPSB+bnVtLA0KICAgICAgIHR5cGUgPSAiYmFyIiwNCiAgICAgICBjb2xvciA9IEkoImRhcmtncmVlbiIpDQogICkgJT4lDQogIGxheW91dCgNCiAgICAgICB0aXRsZSA9ICJEaXN0cmlidXRpb24gb2YgdGhlIGxvbmdlc3QgcnVuIGxlbmdodHMiLA0KICAgICAgIHhheGlzID0gbGlzdCh0aXRsZSA9ICJMZW5ndGggb2YgdGhlIGxvbmdlc3QgcnVuIiwNCiAgICAgICBjYXRlZ29yeW9yZGVyID0gImFycmF5IiwNCiAgICAgICBjYXRlZ29yeWFycmF5ID0gfnRleHQpLA0KICAgICAgIHlheGlzID0gbGlzdCh0aXRsZSA9ICJQcm9iYWJpbGl0eSIsIHJhbmdlID0gYygwLG1heChwcm9iYWJpbGl0aWVzKSkpDQogICkNCn0NCg0KbG9uZ2VzdF9ydW5fZGlzdHJpYnV0aW9uKDEvMiwgMTAwMDApDQpgYGANCjIuIFJvbGxpbmcgYSBmYWlyIGRpZSAxMCAwMDAgdGltZXMgd2l0aCBwcm9iYWJpbGl0eSBvZiBzdWNjZXNzICRcZnJhY3sxfXs2fSQoc2lkZSB3aXRoIG51bWJlciAzIHJvbGxlZCkuIA0KQ2FsY3VsYXRpbmcgYSBjZGYgb2YgdGhlIGxvbmdlc3QgcnVuIGxlbmd0aDoNCmBgYHtyfQ0KbG9uZ2VzdF9ydW5fZGlzdHJpYnV0aW9uKDEvNiwgMTAwMDApDQpgYGANCjMuIEdlbmVyYXRpbmcgYSByYW5kb20gZGlnaXQgMTAgMDAwIHRpbWVzIHdpdGggcHJvYmFiaWxpdHkgb2Ygc3VjY2VzcyAkXGZyYWN7MX17MTB9JChudW1iZXIgMSBvYnRhaW5lZCkuIA0KQ2FsY3VsYXRpbmcgYSBjZGYgb2YgdGhlIGxvbmdlc3QgcnVuIGxlbmd0aDoNCmBgYHtyfQ0KbG9uZ2VzdF9ydW5fZGlzdHJpYnV0aW9uKDEvMTAsIDEwMDAwKQ0KYGBgDQo0LiBDaG9vc2luZyBhIGNhcmQgZnJvbSBhIGRlY2sgb2YgMzIgY2FyZHMgMTAgMDAwIHRpbWVzKHdpdGggcmV0dXJuaW5nIHRoZSBjYXJkIGJhY2spIHdpdGggcHJvYmFiaWxpdHkgb2Ygc3VjY2VzcyAkXGZyYWN7MX17MzJ9JChhY2Ugb2Ygc3BhZGVzIGlzIGNob3NlbikuIA0KQ2FsY3VsYXRpbmcgYSBjZGYgb2YgdGhlIGxvbmdlc3QgcnVuIGxlbmd0aDoNCmBgYHtyfQ0KbG9uZ2VzdF9ydW5fZGlzdHJpYnV0aW9uKDEvMzIsIDEwMDAwKQ0KYGBgDQpBcyB3ZSBjYW4gc2VlLCB0aGUgc21hbGxlciB0aGUgdmFsdWUgb2YgcCwgdGhlIG1vcmUgY29uY2VudHJhdGVkIHRoZSBhcHByb3hpbWF0aW5nIGV4dHJlbWUgdmFsdWUNCmRlbnNpdHkgYmVjb21lcywgYW5kIHRodXMgdGhlIGxlbmd0aCBvZiB0aGUgbG9uZ2VzdCBzdWNjZXNzIHJ1biBiZWNvbWVzIGV2ZW4gbW9yZQ0KcHJlZGljdGFibGUuDQo=